

#include "XmlErrHandler.h"
#include <sstream>


// static std::string  getDataLocation(DOMLocator* dl) {

//   std::stringstream str;
//   str << "Column : " << dl->getColumnNumber()<< std::endl;
//   str << "Line : " << dl->getLineNumber() << std::endl;
//   str << "Offset : " << dl->getOffset() << std::endl;
//   str << "URI : " << XtoStr(dl->getURI()) << std::endl;
  
//   return str.str();
// }

// static const char* reportSeverity(short error) {

//   return error
//   switch(error) {
//   case DOMError::DOM_SEVERITY_WARNING: 
//     return "WARNING\n";
  
//   case DOMError::DOM_SEVERITY_ERROR: 
//     return "ERROR\n";
  
//   case DOMError::DOM_SEVERITY_FATAL_ERROR: 
//     return "FATAL\n";
//   }
//  return "UNKNOWN\n";

// }

// static xerces::XmlErrorHandler::XmlStatusCode getErrorCode(short e) {
//   switch(e) {
  
//   case DOMError::DOM_SEVERITY_WARNING:
//     return xerces::XmlErrorHandler::WARNING;
  
//   case DOMError::DOM_SEVERITY_ERROR:
//     return xerces::XmlErrorHandler::FAIL;
  
//   case DOMError::DOM_SEVERITY_FATAL_ERROR:
//     return xerces::XmlErrorHandler::FAIL;
//   }

//   return xerces::XmlErrorHandler::UNKNOWN;

// }

// xerces::XmlErrorHandler::XmlStatusCode xerces::XmlErrorHandler::status() {
//   if( error == NULL)
//     return PASSED;
//   return code;
// }



// std::string xerces::XmlErrorHandler::translate() {
//   if(code == PASSED)
//     return std::string();

//   std::stringstream str;
//   str << std::endl 
//       << "Error Severity : " << reportSeverity(error->getSeverity())
//       << std::endl
//       << "Description : "   << XtoStr(error->getMessage())
//       << std::endl
//       << "Location : " << getDataLocation(error->getLocation())
//       << std::endl
//       << "Type : " << XtoStr(error->getType());

//   return str.str();
// }


bool xerces::XmlErrorHandler::handleError(const DOMError& e)
{
  setSeverity(e.getSeverity()); 
  setMessage(e.getMessage()); 
  setLocation(e.getLocation()); 
  setRelatedException(e.getRelatedException()); 
  setType(e.getType()); 
  setRelatedData(e.getRelatedData()); 
    

    if( getSeverity() != DOMError::DOM_SEVERITY_WARNING )
      return false;
    
    return true;

}
